require('dotenv').config();
const mongoose = require('mongoose');
const monitorService = require('../server/src/services/monitorService');

// 连接数据库
mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost:27017/intelligence-system')
  .then(() => console.log('MongoDB连接成功'))
  .catch(err => {
    console.error('MongoDB连接失败:', err);
    process.exit(1);
  });

/**
 * 执行监测任务的主函数
 */
async function runMonitor() {
  try {
    console.log('开始执行监测任务...');
    const startTime = new Date();
    
    // 调用监测服务
    const result = await monitorService.monitorAllSources();
    
    const endTime = new Date();
    const duration = (endTime - startTime) / 1000; // 转换为秒
    
    console.log(`监测任务完成。耗时: ${duration}秒`);
    console.log('结果:', result);
    
    // 完成后断开数据库连接
    await mongoose.disconnect();
    console.log('数据库连接已关闭');
    process.exit(0);
  } catch (error) {
    console.error('监测任务执行失败:', error);
    
    // 失败后断开数据库连接
    await mongoose.disconnect();
    console.log('数据库连接已关闭');
    process.exit(1);
  }
}

// 执行监测任务
runMonitor(); 